Zastosowanie interpretacyjnego uczenia maszynowego do przestrzennej analizy profili społeczno-demograficznych wpływających na wzorce głosowania w wyborach prezydenckich w USA
Zebranie Zakładu Geoinformacji i Pracowni Geoinformatyki Stosowanej, WNGiG
Adrian Nowacki, Anna Dmowska, Jarosław Jasiewicz
03-06-2025
Cel projektu
- Celem bezpośrednim projektu było opracowanie przestrzennego profilu społeczno-demograficznego wpływającego na wzorce głosowania w wyborach prezydenckich w USA w latach 2008–2024 na poziomie hrabstw
- Celem pośrednim było zbadanie możliwości zastosowania interpretacyjnego uczenia maszynowego na dużym zbiorze danych demograficznych
Wprowadzenie
Różne czynniki społeczno-ekonomiczne odgrywają kluczową rolę w kształtowaniu wyników wyborczych. Wzorce głosowania w wyborach prezydenckich USA zmieniają się w czasie i przestrzeni, odzwierciedlając reakcje społeczeństwa na zmienne warunki społeczno-ekonomiczne i polityczne.
Analizę zależności między strukturą demograficzną a preferencjami wyborczymi można prowadzić na dwa sposoby:
- bezpośrednią – opartą na indywidualnych danych ankietowych, np. exit poll
- pośrednią – wykorzystującą zagregowane na poziomie jednostek terytorialnych dane z obszernych, cyklicznych badań ankietowych
Wprowadzenie
Odpowiedzi uzyskane w ramach pośredniej metody są udostępniane w formie obszernych zbiorów danych z dużą liczbą zmiennych i wysokim poziomem współzależności między nimi, co utrudnia ich interpretację przy użyciu klasycznych metod statystycznych.
W tym celu stosuje się metody uczenia maszynowego, umożliwiające budowę złożonych modeli opisujących relacje między wynikami wyborczymi a zmiennymi je wyjaśniającymi.
Wiele zaawansowanych modeli wykrywa złożone wzorce w danych bez ujawniania struktury podejmowania decyzji, dlatego w tym celu stosuje się interpretacyjne uczenie maszynowe, które zwiększa przejrzystość złożonych modeli i wskazuje cechy najmocniej wpływające na ich wyniki.
Interpretacyjne uczenie maszynowe jest niezbędne do określenia przestrzennego profilu społeczno-demograficznego wpływającego na wzorce głosowania wyborczego
Dane
American Community Survey (ACS) to ogólnokrajowe, coroczne badanie prowadzone przez Biuro Spisowe Stanów Zjednoczonych (ang. U.S. Census Bureau).
Projekt dostarcza szczegółowych danych społeczno-ekonomicznych i demograficznych o ludności USA, a jego celem jest dostarczanie aktualnych i dokładnych danych, które wspierają decyzje rządów, organizacji pozarządowych, badaczy i firm.
W projekcie wykorzystano uśrednione dane z pięcioletnich zakresów dla każdego roku wyborczego:
- wybory 2008 (ACS 2005-2009)
- wybory 2012 (ACS 2008-2012)
- wybory 2016 (ACS 2012-2016)
- wybory 2020 (ACS 2016-2020)
- wybory 2024 (ACS 2019-2023)
Dane
tonmcg/US_County_Level_Election_Results_08-24
Wyniki wyborów prezydenckich w USA pochodzą z otwartego repozytorium GitHub autorstwa Tony’ego McGoverna.
Zbiór dostarcza przetworzone wyniki głosowań z lat 2008-2024, zintegrowane z różnych oficjalnych źródeł stanowych.
Dane obejmują liczbę, różnicę oraz udział procentowy głosów dla wszystkich hrabstw kontynentalnych Stanów Zjednoczonych w podziale na:

Barack Obama
2008
John McCain


Barack Obama
2012
Mitt Romney


Hillary Clinton
2016
Donald Trump


Joe Biden
2020
Donald Trump


Kamala Harris
2024
Donald Trump

Metody
flowchart TB
subgraph przygotowanie_danych ["I. Przygotowanie danych"]
A1[/Przygotowanie zmiennych demograficznych/]
A2[/Pozyskanie wyników wyborczych/]
end
subgraph PCA ["II. Analiza składowych głównych"]
direction LR
B1[Wykonanie PCA i zmniejszenie liczby zmiennych z 77 do 39]
B2[Powtórne wykonanie PCA i redukcja zmiennych do 12 składowych głównych]
end
B3[\Zbiór 12 komponentów\]
B4[\Tabela ładunków czynnikowych\]
B5[\Mapy wartości składowych głównych\]
B6[\Wpływ zmiennych na składowe główne\]
A1 --> PCA
B1 --> B2
PCA --> B3
PCA --> B4
PCA --> B5
PCA --> B6
subgraph Modelowanie ["III. Uczenie maszynowe"]
direction LR
C0[Połączenie i przygotowanie danych]
C1[Trenowanie modeli]
C2[Ocena wyników modelowania]
C3[Wybór najlepszego modelu]
end
A2 --połączenie zestawu z 12 komponentami--> Modelowanie
B3 --> Modelowanie
C0 --> C1 --> C2 --> C3
Modelowanie --> SHAP
subgraph SHAP ["IV. Interpretacja wyników modelowania"]
D1[Obliczanie wartości SHAP]
end
D2[\Wykresy ważności zmiennych\]
D3[\Wykresy zależności\]
D4[\Mapy wpływu komponentów\]
SHAP --> D2
SHAP --> D3
SHAP --> D4
Metody
Oprócz bazowych narzędzi języka R, w projekcie wykorzystano także szereg pakietów zewnętrznych, m.in.:
Przygotowanie danych
- tidycensus – pobranie danych spisowych USA z Census API
- dplyr – manipulacja danych tabelarycznych
- sf – przetwarzanie i manipulacja danych wektorowych
PCA i modelowanie
- factoextra – wizualizacja wyników PCA
- ggplot2 – wizualizacja wyników w postaci map oraz wykresów
- mlr3 – budowa, trenowanie i ocena modeli uczenia maszynowego
- ranger – implementacja modelu lasów losowych (ang. Random Forest)
- iml – interpretacja modeli uczenia maszynowego za pomocą metody SHAP
Wizualizacje wyników
- ggplot2 – wizualizacja wyników w postaci map oraz wykresów
- DT – wizualizacja danych tabelarycznych
- shapviz – wizualizacja wyników SHAP
Analiza składowych głównych (PCA)
flowchart TB
subgraph przygotowanie_danych ["I. Przygotowanie danych"]
A1[/Przygotowanie zmiennych demograficznych/]
A2[/Pozyskanie wyników wyborczych/]
end
subgraph PCA ["II. Analiza składowych głównych"]
direction LR
B1[Wykonanie PCA i zmniejszenie liczby zmiennych z 77 do 39]
B2[Powtórne wykonanie PCA i redukcja zmiennych do 12 składowych głównych]
end
B3[\Zbiór 12 komponentów\]
B4[\Tabela ładunków czynnikowych\]
B5[\Mapy wartości składowych głównych\]
B6[\Wpływ zmiennych na składowe główne\]
A1 --> PCA
B1 --> B2
PCA --> B3
PCA --> B4
PCA --> B5
PCA --> B6
subgraph Modelowanie ["III. Uczenie maszynowe"]
direction LR
C0[Połączenie i przygotowanie danych]
C1[Trenowanie modeli]
C2[Ocena wyników modelowania]
C3[Wybór najlepszego modelu]
end
A2 --połączenie zestawu z 12 komponentami--> Modelowanie
B3 --> Modelowanie
C0 --> C1 --> C2 --> C3
Modelowanie --> SHAP
subgraph SHAP ["IV. Interpretacja wyników modelowania"]
D1[Obliczanie wartości SHAP]
end
D2[\Wykresy ważności zmiennych\]
D3[\Wykresy zależności\]
D4[\Mapy wpływu komponentów\]
SHAP --> D2
SHAP --> D3
SHAP --> D4
%%classDef dane fill:#e6f0ff,stroke:#2a3f5f,stroke-width:1px;
%%classDef dane_element fill:#9ab4db,stroke:#2a3f5f,stroke-width:1px;
classDef dane fill:#999999,stroke:#000000,stroke-width:0.8px;
classDef dane_element fill:white;
class PCA dane;
class A1,A2 dane_element;
Analiza składowych głównych (PCA)
Analiza głównych składowych (ang. PCA, Principal Component Analysis) to najpopularniejsza metoda redukcji wymiarów danych na podstawie wariancji zbioru. PCA stosuje się w przypadku wielowymiarowych danych, aby zmniejszyć liczbę zmiennych zachowując jak najwięcej informacji (zmienności) oryginalnych danych w celu łatwiejszej interpretacji.
PCA wyszukuje kombinacji zmiennych, które najlepiej opisują różnice między obserwacjami, a następnie tworzy nowe kombinacje zwane składowymi głównymi (komponentami).
Celem wykonania PCA było zredukowanie pozyskanego zbioru zmiennych społeczno-demograficznych do kilkunastu najważniejszych składowych głównych opisujących profile społeczno-demograficzne bez utraty dużej ilości informacji w trzech etapach:
Analiza składowych głównych (PCA)
Etap I
Etap przygotowania danych obejmował wybór jak największej liczby zmiennych, które uwzględniają możliwie szerokie spektrum charakterystyk społeczno-demograficznych, reprezentujących różne aspekty struktury społecznej i warunków życia mieszkańców.
Spośród ok. 1100 dostępnych zmiennych (zależnie od zakresu lat) pozyskano i odpowiednio przygotowano 77 zmiennych ujednoliconych dla każdego roku wyborczego (2008, 2012, 2016, 2020, 2024), pogrupowanych w pięć kategorii: płeć, wykształcenie, dochód, rasa i pochodzenie etniczne, a także zawód i status zatrudnienia.
Zbiór zmiennych dla każdego roku połączono w jedną ramkę danych obejmującą ponad 15,5 tys. rekordów dla wszystkich hrabstw USA z wyłączeniem Portoryko (ok. 3140 dla każdego roku wyborczego).
Analiza składowych głównych (PCA)
Etap II
Na gotowym zbiorze danych wykonano PCA, a następnie zawężono go do 39 zmiennych mających największy wpływ na wariancję. Zmienne te zostały wybrane ze względu na istotny wpływ (powyżej 1,5%) na najważniejsze składowe główne.
Analiza składowych głównych
Gotowy zbiór danych obejmował 39 zmiennych w podziale na 9 kategorii:
Wiek
age_0_17
age_18_34
age_35_64
Obywatelstwo
cit_us_citizen
cit_not_us_citizen
cit_us_citizen_nat
Edukacja
edu_basic
edu_medium
edu_high
Mobilność
mobility_same_house
mobility_different_house
mobility_same_city
Pozostałe
pop
lang_only_english
tenure_owner_occupied
Dochód
income_less_30
income_over_75
median_income
agg_income
pov_over_1
housevalue_median
Stan cywilny
marriage_never_married
marriage_married
Rasa
race_white
race_black
race_am
race_hispanic
Zatrudnienie
workers_goverment
workers_self
work_management
work_production
work_sales
ind_manufacturing
ind_agriculture
ind_public_adm
ind_prof_services
empl_civilian_employed
empl_not_in_labor
::: :::
Analiza składowych głównych
Etap III
Na podstawie uzyskanych wyników dla 39 zmiennych wybrano zbiór danych ograniczający się do 12 nieskorelowanych składowych głównych, które łącznie wyjaśniały 87,4% całkowitej wariancji zbioru danych.
Analiza składowych głównych
Na podstawie wyników PCA wyodrębniono czynniki ładunkowe (ang. loadings), czyli współczynniki korelacji zmiennych z poszczególnymi składowymi głównymi. Pokazują one, jak silnie dana zmienna przyczynia się do danego komponentu.
Wysokie wartości dodatnie oznaczają silną korelację dodatnią danej zmiennej ze składową główną, wysokie wartości ujemne natomiast – silną korelację ujemną pomiędzy zmienną a składową.
Najtrudniejszym aspektem analizy wyników była szczegółowa interpretacja znaczenia poszczególnych komponentów jako profili społeczno-demograficznych kształtujących wzorce wyborcze
Analiza składowych głównych
Szczegółową interpretację wspierało zbadanie wpływu zmiennych na budowanie poszczególnych składowych głównych, umożliwiające identyfikację tych o największym udziale w tworzeniu komponentu.
Kolorem czerwonym oznaczono zmienne o ładunku ujemnym, kolorem niebieskim natomiast – te o ładunku dodatnim.
Dla pierwszej składowej głównej największym wpływem odznaczały się zmienne z wartością wpływu powyżej 6,5%, – osoby z wykształceniem wyższym i będące obywatelami USA poprzez naturalizację.
Analiza składowych głównych
Uzupełnieniem interpretacji była także identyfikacja ładunków czynnikowych każdej zmiennej, ukazująca kierunek i siłę ich powiązań ze składową główną w podziale na kategorie.
Dla pierwszego komponentu największy negatywny wpływ mają zmienne opisujące osoby z wyższym wykształceniem oraz obywateli USA uzyskanych poprzez naturalizację – im większy ich udział, tym niższa wartość komponentu.
Największe dodatnie wartości ładunku mają zmienne opisujące populacje o większym udziale obywateli USA oraz ze średnim wykształceniem – czym większy ich udział, tym wyższa wartość komponentu pierwszego.
Analiza składowych głównych
Wyniki PCA obejmują także możliwość interpretacji wartości składowych głównych (ang. component scores) dla wszystkich rekordów zbioru danych (hrabstw).
Przedstawiają one pozycję każdej obserwacji względem danego komponentu i pozwalają ocenić, które obszary mają wysoki lub niski poziom danej złożonej cechy reprezentowanej przez komponent.
Component scores nie posiadają jednostek fizycznych, lecz operują na nowej przestrzeni wartości utworzonej przez składowe główne (komponenty).
Wysoka wartość dodatnia component score oznacza, że dane hrabstwo silnie przejawia wzorzec opisany przez składową (czyli przez zmienne o wysokich ładunkach dla tego komponentu). Wysoka wartość ujemna – że jest temu wzorcowi przeciwna.
Analiza składowych głównych
Analiza składowych głównych
Analiza składowych głównych
Analiza składowych głównych
Analiza składowych głównych
Analiza składowych głównych
W oparciu o wyniki PCA zaprezentowane przykładowo dla pierwszego komponentu, można opisać go jako profil społeczno-demograficzny różnicujący hrabstwa charakteryzujące się bardziej jednorodną, mniej zamożną i słabiej wykształconą społecznością mieszkającą na peryferiach od bardziej zurbanizowanej, wykształconej, zamożnej i zróżnicowanej demograficznie.
Na podstawie interpretacji szerokich wyników PCA opisano każdy z 12 komponentów jako profil społeczno-demograficzny wyborców, co pozwoliło na lepszą interpretację wyników uzyskanych na etapie modelowania i interpretacji modelu uczenia maszynowego.
Uczenie maszynowe
flowchart TB
subgraph przygotowanie_danych ["I. Przygotowanie danych"]
A1[/Przygotowanie zmiennych demograficznych/]
A2[/Pozyskanie wyników wyborczych/]
end
subgraph PCA ["II. Analiza składowych głównych"]
direction LR
B1[Wykonanie PCA i zmniejszenie liczby zmiennych z 77 do 39]
B2[Powtórne wykonanie PCA i redukcja zmiennych do 12 składowych głównych]
end
B3[\Zbiór 12 komponentów\]
B4[\Tabela ładunków czynnikowych\]
B5[\Mapy wartości składowych głównych\]
B6[\Wpływ zmiennych na składowe główne\]
A1 --> PCA
B1 --> B2
PCA --> B3
PCA --> B4
PCA --> B5
PCA --> B6
subgraph Modelowanie ["III. Uczenie maszynowe"]
direction LR
C0[Połączenie i przygotowanie danych]
C1[Trenowanie modeli]
C2[Ocena wyników modelowania]
C3[Wybór najlepszego modelu]
end
A2 --połączenie zestawu z 12 komponentami--> Modelowanie
B3 --> Modelowanie
C0 --> C1 --> C2 --> C3
Modelowanie --> SHAP
subgraph SHAP ["IV. Interpretacja wyników modelowania"]
D1[Obliczanie wartości SHAP]
end
D2[\Wykresy ważności zmiennych\]
D3[\Wykresy zależności\]
D4[\Mapy wpływu komponentów\]
SHAP --> D2
SHAP --> D3
SHAP --> D4
%%classDef dane fill:#e6f0ff,stroke:#2a3f5f,stroke-width:1px;
%%classDef dane_element fill:#9ab4db,stroke:#2a3f5f,stroke-width:1px;
classDef dane fill:#999999,stroke:#000000,stroke-width:0.8px;
classDef dane_element fill:white;
class Modelowanie dane;
class C0,C1,C2,C3 dane_element;
Uczenie maszynowe
Techniki uczenia maszynowego to metody obliczeń wykorzystywane do automatycznej nauki komputera na podstawie zbiorów danych. Zamiast tworzenia własnych algorytmów, techniki te wykorzystują gotowe modele niezależne od danych wejściowych.
W przypadku złożonych zbiorów danych uczenie maszynowe zastępuje tradycyjne metody statystyczne, które są nieskuteczne dla nieliniowych zależności pomiędzy zmiennymi.
W analizie wykorzystano model regresyjny w ramach uczenia nadzorowanego – celem trenowania modelu nie była predykcja, lecz zbadanie wpływu zmiennych objaśniających na zmienną objaśnianą w celu późniejszej interpretacji.
Uczenie maszynowe
Zmiennymi objaśniającymi był zbiór 12 składowych głównych, zmienną objaśnianą natomiast – przekształcona wartość wyniku wyborczego, wyrażona jako znormalizowana różnica głosów pomiędzy kandydatem Demokratów (od -1 do 0) a Republikanów (od 0 do 1).
Uczenie maszynowe
Ze względu na charakter danych oraz zdolność do uchwycenia złożonych, nieliniowych zależności między zmiennymi, do trenowania wybrano trzy modele regresyjne:
- Random Forest – buduje wiele drzew na losowych próbkach danych i cech
- Extra Trees – działa jak Random Forest, lecz wprowadza dodatkową losowość w wyborze punktów podziału w drzewach
- XGBoost – tworzy drzewa sekwencyjnie korygując błędy poprzednich
W celu dobrania optymalnego ustawienia modeli wspomagano się tuningiem hiperparametrów, który ma na celu poprawę wydajności modelu poprzez odpowiedni dobór jego parametrów technicznych, takich jak głębokość drzew czy liczba iteracji.
Uczenie maszynowe
Dla każdego wytrenowanego modelu wykonano ocenę jego jakości, wyróżniając cztery najważniejsze statystyki: RMSE, R2, Bias oraz wariancję.
Ze względu na najlepszą jakość modelu XGBoost, zdecydowano się wybrać go do dalszej interpretacji, aby zapewnić najbardziej wiarygodne wyniki.
Uczenie maszynowe
flowchart TB
subgraph przygotowanie_danych ["I. Przygotowanie danych"]
A1[/Przygotowanie zmiennych demograficznych/]
A2[/Pozyskanie wyników wyborczych/]
end
subgraph PCA ["II. Analiza składowych głównych"]
direction LR
B1[Wykonanie PCA i zmniejszenie liczby zmiennych z 77 do 39]
B2[Powtórne wykonanie PCA i redukcja zmiennych do 12 składowych głównych]
end
B3[\Zbiór 12 komponentów\]
B4[\Tabela ładunków czynnikowych\]
B5[\Mapy wartości składowych głównych\]
B6[\Wpływ zmiennych na składowe główne\]
A1 --> PCA
B1 --> B2
PCA --> B3
PCA --> B4
PCA --> B5
PCA --> B6
subgraph Modelowanie ["III. Uczenie maszynowe"]
direction LR
C0[Połączenie i przygotowanie danych]
C1[Trenowanie modeli]
C2[Ocena wyników modelowania]
C3[Wybór najlepszego modelu]
end
A2 --połączenie zestawu z 12 komponentami--> Modelowanie
B3 --> Modelowanie
C0 --> C1 --> C2 --> C3
Modelowanie --> SHAP
subgraph SHAP ["IV. Interpretacja wyników modelowania"]
D1[Obliczanie wartości SHAP]
end
D2[\Wykresy ważności zmiennych\]
D3[\Wykresy zależności\]
D4[\Mapy wpływu komponentów\]
SHAP --> D2
SHAP --> D3
SHAP --> D4
%%classDef dane fill:#e6f0ff,stroke:#2a3f5f,stroke-width:1px;
%%classDef dane_element fill:#9ab4db,stroke:#2a3f5f,stroke-width:1px;
classDef dane fill:#999999,stroke:#000000,stroke-width:0.8px;
classDef dane_element fill:white;
class SHAP dane;
class C0,C1,C2,C3 dane_element;
Interpretacja wyników modelowania
Podsumowanie
Autorzy: Adrian Nowacki, Anna Dmowska, Jarosław Jasiewicz
Materiały
Prezentacja: —
Oprogramowanie: Język R, —
Literatura:
—
—
Kontakt
adrian.nowacki@amu.edu.pl
anna.dmowska@amu.edu.pl
jaroslaw.jasiewicz@amu.edu.pl